import QtQuick
import QtQuick.Controls

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Dial鼠标事件")

    Dial {
        id: dial
        width: 200
        height: 200
        anchors.centerIn: parent

        from: 0
        to: 100
        value: 50
        stepSize: 1  // 基础步长

        // 包裹Dial的MouseArea处理滚轮事件
        MouseArea {
            anchors.fill: parent
            acceptedButtons: Qt.NoButton  // 不拦截鼠标点击，仅处理滚轮
            hoverEnabled: true
            onWheel: {
                // 根据Ctrl/Shift修饰键动态调整步长
                var step = dial.stepSize
                if (wheel.modifiers & Qt.ControlModifier) {
                    step = 1  // 精细调节
                } else if (wheel.modifiers & Qt.ShiftModifier) {
                    step = 5   // 快速调节
                }

                // 根据滚轮方向增减值
                dial.value += wheel.angleDelta.y > 0 ? step : -step
                wheel.accepted = true  // 阻止事件继续传递
            }
        }
    }
}
